package tool;

import java.sql.Date;
import java.time.*;

/**
 * @author small瑞
 */
/**
 * 只要是能通过toInstant转换成Instant 都能转换成util.Date ，Instant是入口。
 * java.sql.Date、java.sql.Time、java.sql.Timestamp、java.time.ZonedDateTime、java.time.OffsetDateTime、java.time.LocalDateTime......
 * 等一系列time 下的时间类。
 */
public class TimeTool {
    public static java.util.Date first(java.sql.Date date){
        Instant instant = date.toInstant();
        return java.util.Date.from(instant);
    }
    public static java.util.Date second(java.sql.Time date){
        Instant instant = date.toInstant();
        return java.util.Date.from(instant);
    }
    public static java.util.Date three(java.sql.Timestamp date){
        Instant instant = date.toInstant();
        return java.util.Date.from(instant);
    }


    /**
     * 如果想将time下的时间类转换成java.sql下的时间类，则可以先转化成Date，然后通过get.time（） new一个
     */
    public static java.sql.Date getSQLDate(ZonedDateTime zonedDateTime ){
        Instant instant = zonedDateTime.toInstant();
        Date from = (Date) Date.from(instant);
        return new java.sql.Date( from.getTime() ) ;
    }
    /**
     * util转time   通过瞬时instant 和 当前区域ID获取某个对象；例如LocalDateTime-本地日期时间
     */

    public static ZonedDateTime f( java.util.Date date){
        return ZonedDateTime.ofInstant(date.toInstant(), ZoneOffset.systemDefault());
    }
    public static OffsetDateTime s(java.util.Date date){
        return OffsetDateTime.ofInstant(date.toInstant(),ZoneOffset.systemDefault());
    }
    public static LocalDateTime t(java.util.Date date){
        return LocalDateTime.ofInstant(date.toInstant(),ZoneOffset.systemDefault());
    }

}
